from .web_element import WebElement


class ButtonTag(WebElement):
    '''
    button元素操作
    '''

    def get_title(self):
        '''
        获取元素的title属性值

        :Returns:
            返回元素的title属性值
        '''
        return self.control.GetTitle

    def set_title(self, title):
        '''
        设置元素的title属性值

        :Args:
         - title: 元素的title属性值
        '''
        self.control.SetTitle(title)

    def get_type_attr(self):
        '''
        获取元素的type属性值

        :Returns:
            返回元素的type属性值
        '''
        return self.control.GetTypeAttr

    def set_type_attr(self, type):
        '''
        设置元素的type属性值

        :Args:
         - type: 元素的type属性值
        '''
        self.control.SetTypeAttr(type)

    def get_name(self):
        '''
        获取元素的name属性值

        :Returns:
            返回元素的name属性值
        '''
        return self.control.GetName

    def set_name(self, name):
        '''
        设置元素的name属性值

        :Args:
         - name: 元素的name属性值
        '''
        self.control.SetName(name)

    def get_form_target(self):
        '''
        获取元素的formtarget属性值

        :Returns:
            返回元素的formtarget属性值
        '''
        return self.control.GetFormTarget

    def set_form_target(self, form_target):
        '''
        设置元素的formtarget属性值

        :Args:
         - form_target: 元素的formtarget属性值
        '''
        self.control.SetFormTarget(form_target)

    def get_form_novalidate(self):
        '''
        获取元素的formnovalidate属性值

        :Returns:
            返回元素的formnovalidate属性值
        '''
        return self.control.GetFormNoValidate

    def set_form_novalidate(self, form_no_validate):
        '''
        设置元素的formnovalidate属性值

        :Args:
         - form_no_validate: 元素的formnovalidate属性值
        '''
        self.control.SetFormNoValidate(form_no_validate)

    def get_form_method(self):
        '''
        获取元素的formmethod属性值

        :Returns:
            返回元素的formmethod属性值
        '''
        return self.control.GetFormMethod

    def set_form_method(self, form_method):
        '''
        设置元素的formmethod属性值

        :Args:
         - form_method: 元素的formmethod属性值
        '''
        self.control.SetFormMethod(form_method)

    def get_form_enctype(self):
        '''
        获取元素的formenctype属性值

        :Returns:
            返回元素的formenctype属性值
        '''
        return self.control.GetFormEncType

    def set_form_enctype(self, form_enc_type):
        '''
        设置元素的formenctype属性值

        :Args:
         - form_enc_type: 元素的formenctype属性值
        '''
        self.control.SetFormEncType(form_enc_type)

    def get_form_action(self):
        '''
        获取元素的formaction属性值

        :Returns:
            返回元素的formaction属性值
        '''
        return self.control.GetFormAction

    def set_form_action(self, form_action):
        '''
        设置元素的formaction属性值

        :Args:
         - form_action: 元素的formaction属性值
        '''
        self.control.SetFormAction(form_action)

    def get_disabled(self):
        '''
        获取元素的disabled属性值

        :Returns:
            返回元素的disabled属性值
        '''
        return self.control.GetDisabled

    def set_disabled(self, disabled):
        '''
        设置元素的disabled属性值

        :Args:
         - disabled: 元素的disabled属性值
        '''
        self.control.SetDisabled(disabled)

    def get_auto_focus(self):
        '''
        获取元素的autofocus属性值

        :Returns:
            返回元素的autofocus属性值
        '''
        return self.control.GetAutoFocus

    def set_auto_focus(self, auto_focus):
        '''
        设置元素的autofocus属性值

        :Args:
         - auto_focus: 元素的autofocus属性值
        '''
        self.control.SetAutoFocus(auto_focus)

    def get_value(self):
        '''
        获取元素的value属性值

        :Returns:
            返回元素的value属性值
        '''
        return self.control.GetValue

    def set_value(self, value):
        '''
        设置元素的value属性值

        :Args:
         - value: 元素的value属性值
        '''
        self.control.SetValue(value)

    def get_attribute(self, name):
        '''
        获取属性值

        :Args:
         - name: 属性名称

        :Returns:
            返回属性值
        '''
        if name == 'class':
            return self.get_css_class()
        elif name == 'id':
            return self.get_id()
        elif name == 'title':
            return self.get_title()
        elif name == 'type':
            return self.get_type_attr()
        elif name == 'name':
            return self.get_name()
        elif name == 'formtarget':
            return self.get_form_target()
        elif name == 'formnovalidate':
            return self.get_form_novalidate()
        elif name == 'formmethod':
            return self.get_form_method()
        elif name == 'formenctype':
            return self.get_form_enctype()
        elif name == 'formaction':
            return self.get_form_action()
        elif name == 'disabled':
            return self.get_disabled()
        elif name == 'autofocus':
            return self.get_auto_focus()
        elif name == 'value':
            return self.get_value()
        else:
            return self.get_attribute_value(name)